const { AppError } = require('../utils/errorHandler');

const errorHandler = (err, req, res, next) => {
  console.error('错误处理中间件:', err);
  
  if (err instanceof AppError) {
    return res.status(err.statusCode).json({
      status: 'error',
      message: err.message
    });
  }

  // 处理数据库错误
  if (err.code === 'ER_DUP_ENTRY') {
    return res.status(400).json({
      status: 'error',
      message: '数据已存在'
    });
  }

  // 处理数据库连接错误
  if (err.code === 'ECONNREFUSED') {
    return res.status(500).json({
      status: 'error',
      message: '数据库连接失败'
    });
  }

  // 处理其他错误
  res.status(500).json({
    status: 'error',
    message: '服务器内部错误',
    error: process.env.NODE_ENV === 'development' ? err.message : undefined
  });
};

module.exports = errorHandler; 